package com.wang.xh.gateway.filter;

import com.wang.xh.gateway.domain.AuthUser;
import com.wang.xh.common.constants.Constants;

/**
 * @author wjh
 * @create 2024-09-07 18:37
 */
public interface AuthFilter {

    /**
     * 校验token
     *
     * @param token 请求中的token
     * @return token中携带的数据
     */
    AuthUser check(String token);

    /**
     * 鉴权
     *
     * @param token        请求中的token
     * @param authAuthUserInfo token中携带的数据
     * @param path         当前请求的路径
     * @return 是否通过
     */
    Boolean auth(String token, AuthUser authAuthUserInfo, String path);

    /**
     * 请求中携带token的名称
     *
     * @return 头名称
     */
    default String tokenHeaderName() {
        return Constants.GATEWAY.AUTHORIZATION;
    }
}
